// Пример 24.
// Умножение матрицы на матрицу.
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main()
{
/* Работа с матрицами */
int i,j,n,m,n1,m1,k;
float matr[10][10],p,b[10][10],s,c[10][10];
clrscr(); /*Стираем экран*/
printf("\n Введите размерность матрицы 1( n-число строк m- число столбцов) \n");
scanf("%d%d",&n,&m);
printf("\n Введите матрицу 1 по строкам :\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++){scanf("%f",&p);
matr[i][j]=p;}
printf("\n Введена матрица:\n");
for(i=0;i<n;i++) {for(j=0;j<m;j++) printf(" %f ",matr[i][j]);
printf("\n"); }
printf("\n Введите размерность матрицы 2(п-число строк, т-число столбцов)\n");
scanf("%d%d",&n1,&m1);
if(m!=n1) {
printf("\n Ошибка! Число столбцов матрицы 1 не совпадает с числом строк матрицы 2 \n");
printf("\n Произведение таких матриц вычислить нельзя! \n"); exit(0);
}
printf("\n Введите матрицу 2 по строкам :\n");
for(i=0;i<n1;i++)
for(j=0;j<m1 ;j++){scanf("%f",&p);
b[i][j]=p;}
printf("\n Введена матрица:\n");
for(i=0;i<n1;i++) {
for(j=0;j<m1;j++)printf(" %f ",b[i][j]);
printf("\n");
}
for(i=0;i<n;i++) {
for(j=0;j<m1 ;j++)
{ s=0;
for(k=0;k<m;k++) s=s+matr[i][k]*b[k][j];
c[i][j]=s;
}
}
printf("\n Результирующая матрица:\n");
for(i=0;i<n;i++) {
for(j=0;j<m1;j++)
printf("%f",c[i][j]);
printf("\n");
}
printf("\n Нажмите на любую клавишу ...");
getch(); /*Ждем нажатия на любую клавишу*/
}
 

Сайт управляется системой uCoz